package com.bluesky.plum.domain.repository.search.operator;

public enum IntegerOperator implements LogicOperator {
	LessThan {
		@Override
		Boolean localOperate(Integer o1, Integer o2) {

			return (o1 < o2);
		}
	},
	Equals {
		@Override
		Boolean localOperate(Integer o1, Integer o2) {

			return (o1 == o2);
		}
	},
	MoreThan {
		@Override
		Boolean localOperate(Integer o1, Integer o2) {
			return (o1 > o2);
		}
	},
	LessThanOrEquals {
		@Override
		Boolean localOperate(Integer o1, Integer o2) {
			return (o1 <= o2);
		}
	},
	MoreThanOrEquals {
		@Override
		Boolean localOperate(Integer o1, Integer o2) {
			return (o1 >= o2);
		}
	},
	NotEquals {
		@Override
		Boolean localOperate(Integer o1, Integer o2) {
			return (o1 != o2);
		}
	};

	abstract Boolean localOperate(Integer o1, Integer O2);

	@Override
	public Boolean operate(Object o1, Object o2) {

		return localOperate((Integer) o1, (Integer) o2);
	}
}
